%!PS-Adobe-2.0 EPSF-2.0
%%Title: ClassName
%%Creator: Doxygen
%%CreationDate: Time
%%For: 
%Magnification: 1.00
%%Orientation: Portrait
%%BoundingBox: 0 0 500 1120.69
%%Pages: 0
%%BeginSetup
%%EndSetup
%%EndComments

% ----- variables -----

/boxwidth 0 def
/boxheight 40 def
/fontheight 24 def
/marginwidth 10 def
/distx 20 def
/disty 40 def
/boundaspect 0.446154 def  % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 26 def
/cols 4 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def

% ----- procedures -----

/dotted { [1 4] 0 setdash } def
/dashed { [5] 0 setdash } def
/solid  { [] 0 setdash } def

/max % result = MAX(arg1,arg2)
{
  /a exch def
  /b exch def
  a b gt {a} {b} ifelse
} def

/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
{
  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
} def

/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
{
  /str exch def
  /boxwidth boxwidth str stringwidth pop max def
} def

/box % draws a box with text `arg1' at grid pos (arg2,arg3)
{ gsave
  2 setlinewidth
  newpath
  exch xspacing mul xoffset add
  exch yspacing mul
  moveto
  boxwidth 0 rlineto 
  0 boxheight rlineto 
  boxwidth neg 0 rlineto 
  0 boxheight neg rlineto 
  closepath
  dup stringwidth pop neg boxwidth add 2 div
  boxheight fontheight 2 div sub 2 div
  rmoveto show stroke
  grestore
} def  

/mark
{ newpath
  exch xspacing mul xoffset add boxwidth add
  exch yspacing mul
  moveto
  0 boxheight 4 div rlineto
  boxheight neg 4 div boxheight neg 4 div rlineto
  closepath
  eofill
  stroke
} def

/arrow
{ newpath
  moveto
  3 -8 rlineto
  -6 0 rlineto
  3 8 rlineto
  closepath
  eofill
  stroke
} def

/out % draws an output connector for the block at (arg1,arg2)
{
  newpath
  exch xspacing mul xoffset add boxwidth 2 div add
  exch yspacing mul boxheight add
  /y exch def
  /x exch def
  x y moveto
  0 disty 2 div rlineto 
  stroke
  1 eq { x y disty 2 div add arrow } if
} def

/in % draws an input connector for the block at (arg1,arg2)
{
  newpath
  exch xspacing mul xoffset add boxwidth 2 div add
  exch yspacing mul disty 2 div sub
  /y exch def
  /x exch def
  x y moveto
  0 disty 2 div rlineto
  stroke
  1 eq { x y disty 2 div add arrow } if
} def

/hedge
{
  exch xspacing mul xoffset add boxwidth 2 div add
  exch yspacing mul boxheight 2 div sub
  /y exch def
  /x exch def
  newpath
  x y moveto
  boxwidth 2 div distx add 0 rlineto
  stroke
  1 eq
  { newpath x boxwidth 2 div distx add add y moveto
    -8 3 rlineto
    0 -6 rlineto
    8 3 rlineto
    closepath
    eofill
    stroke
  } if
} def

/vedge
{
  /ye exch def
  /ys exch def
  /xs exch def
  newpath
  xs xspacing mul xoffset add boxwidth 2 div add dup
  ys yspacing mul boxheight 2 div sub
  moveto
  ye yspacing mul boxheight 2 div sub
  lineto
  stroke
} def

/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
{
  /ys exch def
  /xe exch def
  /xs exch def
  newpath
  xs xspacing mul xoffset add boxwidth 2 div add
  ys yspacing mul disty 2 div sub
  moveto
  xspacing xe xs sub mul 0
  rlineto
  stroke
} def

% ----- main ------

boxfont setfont
1 boundaspect scale
(TiXmlNode) cw
(TiXmlBase) cw
(TiXmlBase) cw
(TiXmlBase) cw
(TiXmlBase) cw
(TiXmlComment) cw
(TiXmlComment) cw
(TiXmlComment) cw
(TiXmlComment) cw
(TiXmlDeclaration) cw
(TiXmlDeclaration) cw
(TiXmlDeclaration) cw
(TiXmlDeclaration) cw
(TiXmlDocument) cw
(TiXmlDocument) cw
(TiXmlDocument) cw
(TiXmlDocument) cw
(TiXmlElement) cw
(TiXmlElement) cw
(TiXmlElement) cw
(TiXmlElement) cw
(TiXmlText) cw
(TiXmlText) cw
(TiXmlText) cw
(TiXmlText) cw
(TiXmlUnknown) cw
(TiXmlUnknown) cw
(TiXmlUnknown) cw
(TiXmlUnknown) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
/scalefactor 
  boxwidth cols mul distx cols 1 sub mul add
  boxheight rows mul disty rows 1 sub mul add boundaspect mul 
  max def
boundx scalefactor div boundy scalefactor div scale

% ----- classes -----

 (TiXmlNode) 1.5 24 box
 (TiXmlBase) 0 25 box
 (TiXmlBase) 1 25 box
 (TiXmlBase) 2 25 box
 (TiXmlBase) 3 25 box
 (TiXmlComment) 2.5 23 box
 (TiXmlComment) 2.5 22 box
 (TiXmlComment) 2.5 21 box
 (TiXmlComment) 2.5 20 box
 (TiXmlDeclaration) 2.5 19 box
 (TiXmlDeclaration) 2.5 18 box
 (TiXmlDeclaration) 2.5 17 box
 (TiXmlDeclaration) 2.5 16 box
 (TiXmlDocument) 2.5 15 box
 (TiXmlDocument) 2.5 14 box
 (TiXmlDocument) 2.5 13 box
 (TiXmlDocument) 2.5 12 box
 (TiXmlElement) 2.5 11 box
 (TiXmlElement) 2.5 10 box
 (TiXmlElement) 2.5 9 box
 (TiXmlElement) 2.5 8 box
 (TiXmlText) 2.5 7 box
 (TiXmlText) 2.5 6 box
 (TiXmlText) 2.5 5 box
 (TiXmlText) 2.5 4 box
 (TiXmlUnknown) 2.5 3 box
 (TiXmlUnknown) 2.5 2 box
 (TiXmlUnknown) 2.5 1 box
 (TiXmlUnknown) 2.5 0 box

% ----- relations -----

solid
0 1.5 24 out
solid
0 3 25 conn
solid
1 0 25 in
solid
1 1 25 in
solid
1 2 25 in
solid
1 3 25 in
solid
1 1.5 23.25 out
solid
0 1.5 23.5 hedge
solid
0 1.5 22.5 hedge
solid
0 1.5 21.5 hedge
solid
0 1.5 20.5 hedge
solid
0 1.5 19.5 hedge
solid
0 1.5 18.5 hedge
solid
0 1.5 17.5 hedge
solid
0 1.5 16.5 hedge
solid
0 1.5 15.5 hedge
solid
0 1.5 14.5 hedge
solid
0 1.5 13.5 hedge
solid
0 1.5 12.5 hedge
solid
0 1.5 11.5 hedge
solid
0 1.5 10.5 hedge
solid
0 1.5 9.5 hedge
solid
0 1.5 8.5 hedge
solid
0 1.5 7.5 hedge
solid
0 1.5 6.5 hedge
solid
0 1.5 5.5 hedge
solid
0 1.5 4.5 hedge
solid
0 1.5 3.5 hedge
solid
0 1.5 2.5 hedge
solid
0 1.5 1.5 hedge
solid
0 1.5 0.5 hedge
solid
1.5 24 0.5 vedge
